/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* removeNodes(struct ListNode* head) {
    if(head->next == NULL){
        return head;
    }
    struct ListNode* node = removeNodes(head->next);
    if(node->val > head->val){
        return node;
    }
    head->next = node;
    return head;
}

/*给你一个链表的头节点 head 。

移除每个右侧有一个更大数值的节点。

返回修改后链表的头节点 head 。*/